SERVER_SRC  := server-thread.c
CLIENT_SRC  := client.c
HEADER      := myecho.h
SERVER_LIBS := -lpthread
SERVER_PROG := server
CLIENT_PROG := client
CLIENT_ARG  := localhost
OPS := -Wall

all: $(SERVER_PROG) $(CLIENT_PROG)

$(SERVER_PROG): $(SERVER_SRC) $(HEADER)
	gcc $(OPS) -o $@ $(SERVER_LIBS) $(filter %.c, $^) 

$(CLIENT_PROG): $(CLIENT_SRC) $(HEADER)
	gcc $(OPS) -o $@ $(filter %.c, $^)

run: _run stop

_run: _run_server _run_client

run_server: _run_server stop

run_client: _run_client

_run_server:
	@./$(SERVER_PROG)&
	@sleep 1

_run_client:
	@./$(CLIENT_PROG) $(CLIENT_ARG)

stop:
	@kill `ps | grep $(SERVER_PROG) | cut -b-5`

clean:
	rm -f $(SERVER_PROG) $(CLIENT_PROG) *.err
